package com.zk.monitormanagement.activity;

import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;

import com.luck.picture.lib.PictureSelector;
import com.luck.picture.lib.config.PictureConfig;
import com.luck.picture.lib.config.PictureMimeType;
import com.luck.picture.lib.entity.LocalMedia;
import com.mylhyl.circledialog.CircleDialog;
import com.mylhyl.circledialog.callback.ConfigButton;
import com.mylhyl.circledialog.callback.ConfigInput;
import com.mylhyl.circledialog.params.ButtonParams;
import com.mylhyl.circledialog.params.InputParams;
import com.mylhyl.circledialog.view.listener.OnInputClickListener;
import com.zk.monitormanagement.R;
import com.zk.monitormanagement.base.BaseActivityImp;
import com.zk.monitormanagement.utils.GlideUtils;
import com.zk.monitormanagement.utils.QiniuUtils;
import com.zk.monitormanagement.utils.SharedPreferUtils;
import com.zk.monitormanagement.view.ActionSheetDialog;

import java.io.File;
import java.util.ArrayList;
import java.util.List;

import butterknife.BindView;
import de.hdodenhof.circleimageview.CircleImageView;

public class MineActivity extends BaseActivityImp {

    @BindView(R.id.iv_back)
    ImageView ivBack;
    @BindView(R.id.cir_head)
    CircleImageView cirHead;
    @BindView(R.id.tv_nike_name)
    TextView tvNikeName;
    @BindView(R.id.iv_edit)
    ImageView ivEdit;
    @BindView(R.id.ll_alter_password)
    LinearLayout llAlterPassword;
    @BindView(R.id.bt_logout)
    Button btLogout;
    private String imgPath;

    private List<LocalMedia> selectList = new ArrayList<>();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    }

    @Override
    protected int getLayoutId() {
        return R.layout.activity_mine;
    }

    @Override
    protected void initView() {

    }

    @Override
    protected void initData() {

    }

    @Override
    protected void initEvent() {
        cirHead.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                getUpLoadHeadImg(selectList);
            }
        });

        llAlterPassword.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivity(AlterPasswordActivity.class);
            }
        });
        btLogout.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                SharedPreferUtils.getInstance().put(MineActivity.this,"token","");
                startActivity(LoginActivity.class);
            }
        });
        ivEdit.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                new CircleDialog.Builder()
                        .setTitle("修改昵称")
                        .setWidth(0.8f)
                        //标题字体颜值 0x909090 or Color.parseColor("#909090")
//                .setTitleColor(0x909090)
//                .setTitleIcon(@DrawableRes icon)//标题图标
//                .configTitle(ConfigTitle)//配置标题更多的属性
                        //如果 ConfigTitle 不能满足你，此监听器可以帮助你
//                .setOnCreateTitleListener(OnCreateTitleListener)
//                .setSubTitle(subTitle)//副标题
                        //副标题字体色值 0x909090 or Color.parseColor("#909090")
//                .setSubTitleColor(@ColorInt color)
//                .configSubTitle(ConfigSubTitle)//配置标题更多的属性
                        .setInputHeight(30)
                        .setInputHint("请输入用户新的昵称")
//                .setOnCreateInputListener(new OnCreateInputListener() {
//                    @Override
//                    public void onCreateText(RelativeLayout inputLayout, EditText inputView, TextView counterView) {
//                       name=inputView.getText().toString();
//                    }
//                })
                        .configInput(new ConfigInput() {
                            @Override
                            public void onConfig(InputParams params) {
                                params.margins = new int[]{20, 10, 20, 20};
                            }
                        })
//                .setInputCounter(10)
//                .setInputCounterColor(getResources().getColor(R.color.colorRed))
//                .setText(message)//内容
//                .setTextColor(@ColorInt color)//内容字体色值
//                .configText(ConfigText)//配置内容更多的属性
                        //如果 ConfigText 不能满足你，此监听器可以帮助你
//                .setOnCreateTextListener(OnCreateTextListener)
                        .setPositiveInput("修改", new OnInputClickListener() {
                            @Override
                            public boolean onClick(String text, View v) {
//                                TODO 修改昵称
                                tvNikeName.setText(text);
//                                getSavePhotoAlbum(text);
                                return true;
                            }
                        })
                        .configPositive(new ConfigButton() {
                            @Override
                            public void onConfig(ButtonParams params) {
                                params.textColor = Color.parseColor("#3f80fc");
                            }
                        })//配置确定按钮更多的属性
                        .setNegative("取消", new View.OnClickListener() {
                            @Override
                            public void onClick(View view) {

                            }
                        })
                        .configNegative(new ConfigButton() {
                            @Override
                            public void onConfig(ButtonParams params) {
                                params.textColor = Color.parseColor("#3f80fc");
                            }
                        })//配置取消按钮更多的属性
//                .setNeutral("中间", OnClickListener)
//                .configNeutral(ConfigButton)//配置中间按钮更多的属性
//                //如果 configPositive configNegative configNeutral 不能满足你，此监听器可以帮助你
//                .setOnCreateButtonListener(OnCreateButtonListener)
                        .show(getSupportFragmentManager());
            }
        });


    }

    /**
     * 修改用户头像
     */
    private void getUpLoadHeadImg(final List<LocalMedia> selectList) {
        new ActionSheetDialog(MineActivity.this)
                .builder()
                .setCancelable(false)
                .setCanceledOnTouchOutside(false)
                .addSheetItem("拍照", ActionSheetDialog.SheetItemColor.Blue,
                        new ActionSheetDialog.OnSheetItemClickListener() {
                            @Override
                            public void onClick(int which) {
                                // 单独拍照
                                PictureSelector.create(MineActivity.this)
                                        .openCamera(PictureMimeType.ofImage())// 单独拍照，也可录像或也可音频 看你传入的类型是图片or视频
                                        .maxSelectNum(1)// 最大图片选择数量
                                        .minSelectNum(1)// 最小选择数量
                                        .selectionMode(PictureConfig.SINGLE)// 多选 or 单选
                                        .previewImage(true)// 是否可预览图片
                                        .isCamera(true)// 是否显示拍照按钮
                                        .enableCrop(true)// 是否裁剪
                                        .compress(true)// 是否压缩
                                        .showCropFrame(false)// 是否显示裁剪矩形边框 圆形裁剪时建议设为false
                                        .showCropGrid(false)
                                        .glideOverride(160, 160)// glide 加载宽高，越小图片列表越流畅，但会影响列表图片浏览的清晰度
                                        .hideBottomControls(false)// 是否显示uCrop工具栏，默认不显示
                                        .circleDimmedLayer(true)// 是否圆形裁剪
                                        .previewEggs(false)//预览图片时 是否增强左右滑动图片体验(图片滑动一半即可看到上一张是否选中)
                                        .showCropFrame(false)// 是否显示裁剪矩形边框 圆形裁剪时建议设为false
                                        .showCropGrid(false)
                                        .freeStyleCropEnabled(false)// 裁剪框是否可拖拽
                                        //.previewEggs(false)// 预览图片时 是否增强左右滑动图片体验(图片滑动一半即可看到上一张是否选中)
                                        //.cropCompressQuality(90)// 裁剪压缩质量 默认为100
                                        .minimumCompressSize(100)// 小于100kb的图片不压缩
                                        .forResult(PictureConfig.CHOOSE_REQUEST);//结果回调onActivityResult code
                            }
                        })
                .addSheetItem("相册", ActionSheetDialog.SheetItemColor.Blue,
                        new ActionSheetDialog.OnSheetItemClickListener() {
                            @Override
                            public void onClick(int which) {
                                PictureSelector.create(MineActivity.this)
                                        .openGallery(PictureMimeType.ofImage())
                                        .maxSelectNum(1)// 最大图片选择数量
                                        .minSelectNum(1)// 最小选择数量
                                        .imageSpanCount(4)// 每行显示个数
                                        .selectionMode(PictureConfig.SINGLE) // 是否可预览图片
                                        .isCamera(true)// 是否显示拍照按钮
                                        .enableCrop(true)// 是否裁剪
                                        .compress(true)// 是否压缩
                                        .synOrAsy(true)//同步true或异步false 压缩 默认同步
                                        .glideOverride(160, 160)// glide 加载宽高，越小图片列表越流畅，但会影响列表图片浏览的清晰度
                                        .hideBottomControls(false)// 是否显示uCrop工具栏，默认不显示
                                        .showCropFrame(false)// 是否显示裁剪矩形边框 圆形裁剪时建议设为false
                                        .showCropGrid(false)
                                        .freeStyleCropEnabled(false)// 裁剪框是否可拖拽
                                        .circleDimmedLayer(true)// 是否圆形裁剪
                                        .selectionMedia(selectList)// 是否传入已选图片
                                        .minimumCompressSize(100)// 小于100kb的图片不压缩
                                        .forResult(PictureConfig.CHOOSE_REQUEST);
                            }
                        })
                .show();
    }

    public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (resultCode == RESULT_OK) {
            switch (requestCode) {
                case PictureConfig.CHOOSE_REQUEST:
                    // 图片选择结果回调
                    selectList = PictureSelector.obtainMultipleResult(data);
//                    selectList.get(0).getCompressPath();
                    QiniuUtils.from(MineActivity.this).queue(new File(selectList.get(0).getCutPath()), new QiniuUtils.UploadListener() {
                        @Override
                        public void onSuccess(File compressedFile, String key) {
                            imgPath = key;
                            Log.e("sss", imgPath);
                            GlideUtils.loadImageView(MineActivity.this, key, cirHead);
                        }

                        @Override
                        public void onError(int code) {
//                            Log.e("sss", "错误代码" + code);

                        }
                    });

            }
        }
    }
}
